NPC Enemy SpikeMan
アニメーションで左右に動くだけのシンプルな敵キャラを作る。
https://gyazo.com/c7674d4c4c90f574c1f8494541ede3b6
アニメーションで transform.positionを動かす場合は、
Area2D などを親にして直接動かすと、良くない。
空のNode2Dをグローバル座標で動かして、
AnimatedSpriteを子要素に持つ、Area2Dをローカル座標でアニメーションさせるような
構造が良い。
Animationを作成
今回操作するのは、
Area2D.position
AnimatedSprite.animation
AnimatedSprite.flip_h
https://gyazo.com/1d3eded23aeca405bd569787329a97d7
動いているときは walk, 止まっているときは stand のSpriteFrameを再生し、
歩行方向と違和感ないようにflip(反転)をon/offする
loop ボタンも押しておく
便利コマンド
あるフレームを選択 + フレームを移動 + cmd + d : フレームを複製する
Scriptを書く
code: SpikeMan.py
extends Node2D
func _ready():
$Area2D/AnimationPlayer.play("walk")
func _on_Area2D_body_entered(body):
get_tree().call_group("GameState", "hurt")
Spikeと同じ用に、KinematicBody2Dが入ったらhurtを起動
また、AnimationPlayerは 自動で起動できないので、_ready()の時点でplay()する